package com.xlh.dao.user.ext;

import com.xlh.dto.user.UserClassDTO;
import com.xlh.dto.user.UserClassInfoDTO;
import com.xlh.pojo.user.Class;
import com.xlh.pojo.user.UserClass;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserClassMapperExt {

    /**
     * 根据学生id获取班级集合
     *
     * @param userId 用户id
     * @return
     */
    List<Class> listClassIdByStudentId(@Param("userId") Long userId);

    List<Class> listClassIdByStudentIds(@Param("userIds") List<Long> userIds);
    /**
     * 根据班级信息获取历史班级
     *
     * @param classInfo 班级信息
     * @param status    查询学生的状态
     * @param role      查询学生的角色
     * @param userId    教师id
     * @return
     */
    List<UserClassDTO> queryHistoryClass(@Param("classInfo") String classInfo, @Param("status") Integer status,
                                         @Param("role") Integer role, @Param("userId") Long userId);

    /**
     * 获取某班级下的学生id
     *
     * @param classId 班级id
     * @return
     */
    List<UserClass> queryUserClass(@Param("classId") Long classId);

    /**
     * 批量添加
     *
     * @param userIds 用户id集合
     * @param classId 班级id
     */
    void insertBatch(@Param("userIds") List<Long> userIds, @Param("classId") Long classId);

    /**
     * 获取用户的班级
     *
     * @param userNumberList 学号集合
     * @param statusList     搜索用户状态
     * @return
     */
    List<UserClassInfoDTO> queryUserClassInfo(@Param("statusList") List<Integer> statusList,
                                              @Param("userNumberList") List<String> userNumberList,
                                              @Param("role") Integer role);

    /**
     * 查询未被删除并且可用的用户
     * @param classId
     * @return
     */
    List<UserClass> findNotDeleteUserClass(@Param("classId") Long classId);



}